package com.hex.ds.hdtp.core.inf.metadata.repository.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hex.ds.hdtp.core.inf.metadata.mapper.ISourceConfInfoMapper;
import com.hex.ds.hdtp.core.inf.metadata.po.SourceConfInfoPo;
import com.hex.ds.hdtp.core.inf.metadata.repository.ISourceConfInfoRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @Package: com.hex.hdc.center.inf.metadata.repository
 * @ClassName SourceConfInfoRepository
 * @Description: 数据源连接配置
 * @Author: wz.li
 * @Date 2022/5/9 14:45
 * @Version v2.0.2
 **/
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SourceConfInfoRepository implements ISourceConfInfoRepository {

    private final ISourceConfInfoMapper sourceConfInfoMapper;

    /*
     * @Method: queryById <br>
     * @Param: [pkId] <br>
     * @Return: com.hex.hdc.center.domain.metadata.SourceConfInfo <br>
     * @Description：根据指定主键获取某个数据源连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:50 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public SourceConfInfoPo queryById(String pkId) {
        return sourceConfInfoMapper.selectById(pkId);
    }

    /*
     * @Method: add <br>
     * @Param: [sourceConfInfo] <br>
     * @Return: java.lang.Integer <br>
     * @Description：新增数据源连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:50 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public Integer add(SourceConfInfoPo sourceConfInfoPo) {
        return sourceConfInfoMapper.insert(sourceConfInfoPo);
    }

    /*
     * @Method: modifyById <br>
     * @Param: [sourceConfInfo] <br>
     * @Return: java.lang.Integer <br>
     * @Description：更新指定数据源连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:51 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public Integer modifyById(SourceConfInfoPo sourceConfInfoPo) {
        return sourceConfInfoMapper.updateById(sourceConfInfoPo);
    }

    /*
     * @Method: removeById <br>
     * @Param: [pkId] <br>
     * @Return: java.lang.Integer <br>
     * @Description：删除指定某个主键的数据源连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:51 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public Integer removeById(String pkId) {
        return sourceConfInfoMapper.deleteById(pkId);
    }

    /*
     * @Method: queryListBySourceCode <br>
     * @Param: [sourceCode] <br>
     * @Return: java.util.List<com.hex.hdc.center.domain.metadata.SourceConfInfo> <br>
     * @Description：查询指定数据源编码的连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:52 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public List<SourceConfInfoPo> queryList(SourceConfInfoPo sourceConfInfoPo) {
        final List<SourceConfInfoPo> sourceConfInfoPos = sourceConfInfoMapper.queryList(sourceConfInfoPo);
        return sourceConfInfoMapper.queryList(sourceConfInfoPo);
    }

    /*
     * @Method: queryListBySourceCode <br>
     * @Param: [sourceCode] <br>
     * @Return: java.util.List<com.hex.hdc.center.domain.metadata.SourceConfInfo> <br>
     * @Description：根据数据源编码查询<br>
     * @Author： wz.li<br>
     * @Date： 2022/8/2 18:24 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public List<SourceConfInfoPo> queryListBySourceCode(String sourceCode) {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("source_code", sourceCode);
        return sourceConfInfoMapper.selectList(queryWrapper);
    }


    /*
     * @Method: removeBySourceCode <br>
     * @Param: [sourceCode] <br>
     * @Return: java.lang.Integer <br>
     * @Description：删除指定数据源编码的连接配置<br>
     * @Author： wz.li<br>
     * @Date： 2022/5/9 14:52 <br>
     * @Version： V2.0.2<br>
     */
    @Override
    public Integer removeBySourceCode(String sourceCode) {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("source_code", sourceCode);
        return sourceConfInfoMapper.delete(queryWrapper);
    }
}
